package com.zust513.service;

import com.zust513.dto.UserDTO;
import com.zust513.entity.Region;
import com.zust513.entity.User;
import java.util.List;
import java.util.Map;

/**
 * 用户服务接口
 */
public interface UserService {

    /**
     * 获取所有管理员用户
     * @return 管理员用户列表
     */
    List<UserDTO> getAllAdmins();

    /**
     * 根据ID获取用户
     * @param userId 用户ID
     * @return 用户DTO
     */
    UserDTO getUserById(Integer userId);

    /**
     * 添加管理员用户
     * @param userDTO 用户DTO
     * @return 添加后的用户DTO（含ID）
     */
    UserDTO addAdmin(UserDTO userDTO);

    /**
     * 更��用户信息
     * @param userDTO 用户DTO
     * @return 更新是否成功
     */
    boolean updateUser(UserDTO userDTO);

    /**
     * 删除用户
     * @param userId 用户ID
     * @return 删除是否成功
     */
    boolean deleteUser(Integer userId);

    /**
     * 登录
     * @param  username 用户名
     * @return 登录成功的用户
     */
    User login(String username,String passwordHash);

    /**
     * 注册
     * @param user 用户信息
     * @return 注册是否成功
     */
    User register(User user,Integer deliveryArea);

    /**
     * 获取所有快递员的配送区域
     * @return 配送区域列表
     */
    List<Region> getDeliveryAreas();
}
